This page last changed on Oct 20, 2006 by cholmes.


Welcome to the programmer's guide to GeoServer. The point of the guide is to give an overview of the architecture of GeoServer, and to guide new plug-in writers on where to get started.

The big push with GeoServer 1.4 was to extract a framework out of the lessons we've learned and the code we've built in the years of GeoServer development. Just like 'Ruby on Rails' was extracted from the Basecamp codebase, so too are we hoping to do the same for Java geospatial applications. The evolution is still taking place, so please don't hesitate to give feedback, but we hope to make GeoServer a platform of choice for anyone developing new web based geospatial applications in Java.

GeoServer is also working to integrate with the most popular technologies in the wider Java world. For 1.4 Spring was chosen as a framework to aid developers. We did an evaluation of several technologies about a year ago. But we are open to working with OSGi and others as they mature.

A quick note on the license, we are working to make at least the core LGPL, so that commercial providers can build their own services on top of the framework. If you need more details than contact inquiry <at> openplans.org, as The Open Planning Project is the holder of the copyright (though must get approval from all contributors to change the license).

Terminology

Before getting started, it will be useful to set up some terminology.

module A compile-time entity. A grouping of related source code under a single directory in the source tree. A module can contain 0..* components.
component A runtime entity. A "global" object visible to the rest of the system.
bean The Spring realization of a component, the two terms will be used interchangably.
extension-point A point in the system designed to be extensible. An extension point is usually an abstract class or an interface.
extension The implementation of an extension
plug-in A collection of extensions realized as Spring beans, and the Spring metadata describing them.
Document generated by Confluence on Jan 16, 2008 23:26